<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Sugar</title>
</head>

<body>
  <script>

    // 数组数字从小到大排序
    // const arr = [11, 33, 455, 6, 7, 899, 112, 34112];
    // // 调用后，直接改变原数组的排序
    // arr.sort((a, b) => { return a - b });
    // console.log(arr);

    /* 
    指明了 比较函数 ，那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素：
      如果 小于 0 ，那么 a 会被排列到 b 之前; 如: -1
      如果 等于 0 ， a 和 b 的相对位置不变。
      如果 大于 0 ， b 会被排列到 a 之前。如：1
    注意：返回值都要求为数值型。
    */

    const allCity = [
      { label: "北京", pinyin: "beijing", short: "bj" },
      { label: "安庆", pinyin: "anqing", short: "aq" },
      { label: "南宁", pinyin: "nanning", short: "nn" },
      { label: "长沙", pinyin: "changsha", short: "cs" },
      { label: "武汉", pinyin: "wuhan", short: "wh" },
      { label: "重庆", pinyin: "zhongqing", short: "zq" },
      { label: "青岛", pinyin: "qingdao", short: "qd" },
      { label: "郑州", pinyin: "zhengzhou", short: "zz" },
      { label: "沈阳", pinyin: "shenyang", short: "sy" },
    ];

    // allCity.sort((a, b) => {
    //   // console.log(a.short, b.short);
    //   // return a - b
    //   return a.short > b.short ? 1 : -1;
    // });
    allCity.sort((a, b) => a.short > b.short ? 1 : -1);
    console.log(allCity);
    /*
    排序后：
    [
      { "label": "安庆", "pinyin": "anqing", "short": "aq" },
      { "label": "北京", "pinyin": "beijing", "short": "bj" },
      { "label": "长沙", "pinyin": "changsha", "short": "cs" },
      { "label": "南宁", "pinyin": "nanning", "short": "nn" },
      { "label": "青岛", "pinyin": "qingdao", "short": "qd" },
      { "label": "沈阳", "pinyin": "shenyang", "short": "sy" },
      { "label": "武汉", "pinyin": "wuhan", "short": "wh" },
      { "label": "重庆", "pinyin": "zhongqing", "short": "zq" },
      { "label": "郑州", "pinyin": "zhengzhou", "short": "zz" }
    ]
    */
  </script>
</body>

</html>